<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Productos extends CI_Controller {

	// Constructor de Clase
	function __construct() {
		parent::__construct();

		$this->load->model('Model_Producto');
		$this->load->library('productoLib');

		$this->form_validation->set_message('required', 'Debe ingresar un valor para %s');
		$this->form_validation->set_message('norep', 'Existe otro registro con el mismo nombre');
	}

	public function index() {
		$data['contenido'] = 'productos/index';
		$data['titulo'] = 'Productos';
		$data['query'] = $this->Model_Producto->all();
		$this->load->view('template', $data);
	}

	public function search() {
		$data['contenido'] = 'productos/index';
		$data['titulo'] = 'Productos';
		$value = $this->input->post('buscar');
		$data['query'] = $this->Model_Producto->allFiltered('nombre', $value);
		$this->load->view('template', $data);
	}

	public function norep() {
		return $this->productolib->norep($this->input->post());
	}

	public function create() {
		$data['contenido'] = 'productos/create';
		$data['titulo'] = 'Crear Producto';
		$data['categorias'] = $this->Model_Producto->get_categorias(); /* Lista de las Categorias */
		$this->load->view('template', $data);
	}

	public function insert() {
		$registro = $this->input->post();

		$this->form_validation->set_rules('nombre', 'Nombre', 'required|callback_norep');
		if($this->form_validation->run() == FALSE) {
			$this->create();
		}
		else {
			$registro['created'] = date('Y/m/d H:i');
			$registro['updated'] = date('Y/m/d H:i');
			$this->Model_Producto->insert($registro);
			redirect('productos/index');
		}
	}

public function edit($id) {
		// $id = $this->uri->segment(3);

		$data['contenido'] = 'productos/edit';
		$data['titulo'] = 'Actualizar producto';
		$data['registro'] = $this->Model_Producto->find($id);
		$this->load->view('template', $data);
	}



	public function update() {
		$registro = $this->input->post();

		$this->form_validation->set_rules('nombre', 'Nombre', 'required|callback_norep');
		if($this->form_validation->run() == FALSE) {
			$this->edit($registro['id']);
		}
		else {
			$registro['updated'] = date('Y/m/d H:i');
			$this->Model_Producto->update($registro);
			redirect('productos/index');
		}
	}

	public function delete($id) {
		$this->Model_Producto->delete($id);
		redirect('productos/index');
	}

}
